import Runloop from '@runloop/api-client';
const client = new Runloop({
bearerToken: process.env['RUNLOOP_API_KEY'], // This is the default and can be omitted
});
const mcpConfigView = await client.mcpConfigs.update('id');
console.log(mcpConfigView.id);import os
from runloop_api_client import Runloop
client = Runloop(
bearer_token=os.environ.get("RUNLOOP_API_KEY"), # This is the default and can be omitted
)
mcp_config_view = client.mcp_configs.update(
id="id",
)
print(mcp_config_view.id)curl --request POST \
--url https://api.runloop.ai/v1/mcp-configs/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"endpoint": "<string>",
"allowed_tools": [
"<string>"
],
"description": "<string>",
"custom_headers": [
{
"name": "<string>",
"secret": "<string>",
"value": "<string>"
}
],
"auth_mechanism": {
"type": "<string>",
"key": "<string>"
}
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.runloop.ai/v1/mcp-configs/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'endpoint' => '<string>',
'allowed_tools' => [
'<string>'
],
'description' => '<string>',
'custom_headers' => [
[
'name' => '<string>',
'secret' => '<string>',
'value' => '<string>'
]
],
'auth_mechanism' => [
'type' => '<string>',
'key' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.runloop.ai/v1/mcp-configs/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"endpoint\": \"<string>\",\n \"allowed_tools\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"custom_headers\": [\n {\n \"name\": \"<string>\",\n \"secret\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"auth_mechanism\": {\n \"type\": \"<string>\",\n \"key\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.runloop.ai/v1/mcp-configs/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"endpoint\": \"<string>\",\n \"allowed_tools\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"custom_headers\": [\n {\n \"name\": \"<string>\",\n \"secret\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"auth_mechanism\": {\n \"type\": \"<string>\",\n \"key\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.runloop.ai/v1/mcp-configs/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"endpoint\": \"<string>\",\n \"allowed_tools\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"custom_headers\": [\n {\n \"name\": \"<string>\",\n \"secret\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"auth_mechanism\": {\n \"type\": \"<string>\",\n \"key\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"endpoint": "<string>",
"allowed_tools": [
"<string>"
],
"auth_mechanism": {
"type": "<string>",
"key": "<string>"
},
"create_time_ms": 123,
"description": "<string>",
"custom_headers": [
{
"name": "<string>",
"secret": "<string>",
"value": "<string>"
}
]
}[Beta] Update an McpConfig.
[Beta] Update an existing McpConfig. All fields are optional.
import Runloop from '@runloop/api-client';
const client = new Runloop({
bearerToken: process.env['RUNLOOP_API_KEY'], // This is the default and can be omitted
});
const mcpConfigView = await client.mcpConfigs.update('id');
console.log(mcpConfigView.id);import os
from runloop_api_client import Runloop
client = Runloop(
bearer_token=os.environ.get("RUNLOOP_API_KEY"), # This is the default and can be omitted
)
mcp_config_view = client.mcp_configs.update(
id="id",
)
print(mcp_config_view.id)curl --request POST \
--url https://api.runloop.ai/v1/mcp-configs/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"endpoint": "<string>",
"allowed_tools": [
"<string>"
],
"description": "<string>",
"custom_headers": [
{
"name": "<string>",
"secret": "<string>",
"value": "<string>"
}
],
"auth_mechanism": {
"type": "<string>",
"key": "<string>"
}
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.runloop.ai/v1/mcp-configs/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'endpoint' => '<string>',
'allowed_tools' => [
'<string>'
],
'description' => '<string>',
'custom_headers' => [
[
'name' => '<string>',
'secret' => '<string>',
'value' => '<string>'
]
],
'auth_mechanism' => [
'type' => '<string>',
'key' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.runloop.ai/v1/mcp-configs/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"endpoint\": \"<string>\",\n \"allowed_tools\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"custom_headers\": [\n {\n \"name\": \"<string>\",\n \"secret\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"auth_mechanism\": {\n \"type\": \"<string>\",\n \"key\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.runloop.ai/v1/mcp-configs/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"endpoint\": \"<string>\",\n \"allowed_tools\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"custom_headers\": [\n {\n \"name\": \"<string>\",\n \"secret\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"auth_mechanism\": {\n \"type\": \"<string>\",\n \"key\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.runloop.ai/v1/mcp-configs/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"endpoint\": \"<string>\",\n \"allowed_tools\": [\n \"<string>\"\n ],\n \"description\": \"<string>\",\n \"custom_headers\": [\n {\n \"name\": \"<string>\",\n \"secret\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"auth_mechanism\": {\n \"type\": \"<string>\",\n \"key\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"endpoint": "<string>",
"allowed_tools": [
"<string>"
],
"auth_mechanism": {
"type": "<string>",
"key": "<string>"
},
"create_time_ms": 123,
"description": "<string>",
"custom_headers": [
{
"name": "<string>",
"secret": "<string>",
"value": "<string>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The unique identifier of the McpConfig to update.
Body
Parameters for updating an existing McpConfig. All fields are optional - only specified fields will be updated.
New name for the McpConfig. Must be unique within your account.
New target MCP server endpoint URL.
New glob patterns specifying which tools are allowed. Examples: [''] for all tools, ['github.search_'] for specific patterns.
New description for this MCP configuration.
New list of additional headers. Replaces the existing list entirely; use an empty list to clear all custom headers. At most 8 entries.
Show child attributes
Show child attributes
New auth mechanism for the primary credential.
Show child attributes
Show child attributes
Response
McpConfig updated successfully.
An McpConfig defines a configuration for connecting to an upstream MCP (Model Context Protocol) server. It specifies the target endpoint and which tools are allowed.
The unique identifier of the McpConfig.
The human-readable name of the McpConfig. Unique per account.
The target MCP server endpoint URL (e.g., 'https://mcp.example.com').
Glob patterns specifying which tools are allowed from this MCP server (e.g., ['github.search_', 'github.get_'] or ['*'] for all tools).
How the primary credential is applied to upstream requests.
Show child attributes
Show child attributes
Creation time of the McpConfig (Unix timestamp in milliseconds).
Optional description for this MCP configuration.
Additional headers applied to upstream requests after the credential. Secret-backed entries reference the secret by 'sec_' id; values are never returned.
Show child attributes
Show child attributes
Was this page helpful?
